import pymysql


class MySqlHelper:
    def __init__(self):
        # 建立数据库连接
        self.db = pymysql.connect(
            host="gz-cynosdbmysql-grp-i0g3xbeh.sql.tencentcdb.com",
            port=29932,
            user="root",
            passwd="XdF@927114",
            db="passport"
        )
        # 通过 cursor() 创建游标对象，并让查询结果以字典格式输出
        self.cur = self.db.cursor(cursor=pymysql.cursors.DictCursor)

    def query(self, sql):
        # 使用 execute() 执行sql
        self.cur.execute(sql)
        # 使用 fetchall() 获取所有查询结果
        data = self.cur.fetchall()
        # 关闭游标
        self.cur.close()
        # 关闭数据库连接
        self.db.close()
        return data

    def update(self, sql: str) -> int:
        print("数据库受影响行数：", end="")
        # 执行sql
        self.cur.execute(sql)
        # 如果update/delete/insert记得要conn.commit()
        # 否则数据库事务无法提交
        row = self.cur.commit()
        # 关闭游标
        self.cur.close()
        # 关闭数据库连接
        self.db.close()
        print(row)
        return row
